$(function () {//加载表格
    $('#dg').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: regression + '/usecase/listUsecase',
        pagination: true,
        singleSelect: false,//如果为true，则只允许选择一行。
        title: "案例列表",
        pageSize: pageSize,
        pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'id', title: '案例编号', hidden: "true"},
            {field: 'name', title: '案例名称'},
            {field: 'requested', title: '请求方式'},
            {field: 'url', title: '请求地址', width: 80},
            {field: 'commonparameters', title: '请求公用参数', width: 80},
            {field: 'fsetcodeparameters', title: '请求套账参数', width: 80},
            {field: 'fywdate', title: '业务日期'},
            {field: 'fsetcode', title: '套账号'},
            {field: 'ftype', title: '处理类型'},
            {field: 'result', title: '处理结果'}
            /*,
            {field: 'result', title: '测试结果'},
            {field: 'status', title: '状态'},
            {field: 'addTime', title: '添加时间'},
            {field: 'addUser', title: '添加用户'},
            {field: 'editTime', title: '修改时间'},
            {field: 'editUser', title: '修改用户'},
            {field: 'deleteReason', title: '删除描述'}*/
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            view(rowData)
        }
    }).datagrid("columnMoving");
    initData();
})

// 初始化加载下拉框的值
function initData() {
    $.ajax({
            type: "post",
            url: regression + "/usecase/init",
            dataType: "json",
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                var fsetcode = data.data.fsetcode;
                var listType = data.data.listType;
                var tabletype = data.data.tabletype;
                if (!isNull(fsetcode)) {
                    $("#fsetcode").combobox("loadData", fsetcode);
                    $("#fsetcode2").combobox("loadData", fsetcode);
                }
                if (!isNull(listType)) {
                    $("#ftype").combobox("loadData", listType);
                }
                if (!isNull(tabletype)) {
                    $("#tabletype").combobox("loadData", tabletype);
                }
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

//搜索的方法
function doSearch() {
    var queryParams = $("#dg").datagrid("options").queryParams;
    queryParams["selName"] = $("#selName").val();
    $("#dg").datagrid("options").queryParams = queryParams;
    $("#dg").datagrid("load");
}

/**
 *  查看方法
 */
function view(rowData) {
    $('#myform').form('disableValidation');//清除验证样式
    $('#dlg').dialog({
        title: "查看用例",
        buttons: [{
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myform').form('load', rowData);//页面赋值
}


//新增用例
function addValue() {
    $("#myform").form('clear');//添加之前清空表达信息
    $('#myform').form('enableValidation');//设置验证样式
    $('#dlg').dialog({
        title: "新增用例信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemValue(1);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myform').form('enableValidation');//设置验证样式
}


//修改用例信息方法
function editValue() {
    $('#myform').form('enableValidation');//设置验证样式
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    $('#dlg').dialog({
        title: "修改字典值信息",
        buttons: [{
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveItemValue(2);
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg').dialog('close');
            }
        }
        ]
    }).dialog('open');
    $('#myform').form('load', arr[0]);//页面赋值
}

//保存用例信息
function saveItemValue(ftype) {
    //验证表单信息
    if (!$("#myform").form('validate')) {  //验证表单信息
        return;
    }
    $.messager.confirm('系统提示', "确定保存用例信息吗？", function (param) {
        if (!param) {
            return;
        }
        var url = regression + "/usecase/edit";
        if (1 == ftype) {
            url = regression + "/usecase/add";
        }
        $('#myform').form('submit', {
            url: url,
            onSubmit: function () {
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                //关闭弹出窗口
                $('#dlg').dialog('close');
                $.messager.show({title: '系统提示', msg: data.message});
                $("#dg").datagrid("load");//刷新表格
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}

/**
 * 删除用例信息方法
 */
function delUsecase() {
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要删除的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要删除这' + arr.length + '条用例信息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: regression + "/usecase/del",
                dataType: "json",
                data: {
                    id: JSON.stringify(ids)
                },
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $("#dg").datagrid("load");//刷新表格
                    $.messager.show({title: '系统提示', msg: data.message});
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );
    });
}


// 初始化加载下拉框的值
function executeUsecase() {
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length == 0) {
        $.messager.alert('系统提示', "请选择你要执行的数据！", 'warning');
        return;
    }
    $.messager.confirm('系统提示', '确定要执行这' + arr.length + '条用例信息吗？', function (param) {
        if (!param) {
            return;
        }
        var ids = [];
        for (var i = 0; i < arr.length; i++) {
            ids.push(arr[i].id);
        }
        $.messager.progress({text: '正在处理中...',});
        $.ajax({
                type: "post",
                url: regression + "/usecase/executeUsecase",
                data: {
                    ids: JSON.stringify(ids)
                },
                dataType: "json",
                success: function (data) {
                    $.messager.progress('close');
                    if (successcode != data.code) {
                        return errorHandle(data);
                    }
                    $.messager.show({title: '系统提示', msg: data.message});
                    $("#dg").datagrid("load");//刷新表格
                }, error: function (data) {
                    $.messager.progress('close');
                    $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
                }
            }
        );
    });
}


/**
 * 导入用例标准数据
 */
function uploadUsecase() {
    $('#dlg2').dialog({
        title: "导入标准数据",
        buttons: [{
            text: '确定',
            iconCls: 'icon-save',
            handler: function () {
                doUploadUsecase();
            }
        }, {
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg2').dialog('close');
            }
        }
        ]
    }).dialog('open');
}


//导入标准数据
function doUploadUsecase() {
    //验证表单信息
    if (!$("#myform2").form('validate')) {  //验证表单信息
        return;
    }
    $.messager.confirm('系统提示', "确定导入标准数据吗？", function (param) {
        if (!param) {
            return;
        }
        $('#myform2').form('submit', {
            url: regression + "/usecase/upload",
            onSubmit: function () {
                $.messager.progress({text: '正在处理中...',});
            }, success: function (data) {
                $.messager.progress('close');
                data = JSON.parse(data);
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                //关闭弹出窗口
                $('#dlg').dialog('close');
                $.messager.show({title: '系统提示', msg: data.message});
                $("#dg").datagrid("load");//刷新表格
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        });
    });
}

/**
 * 查看差异数据
 */
function queryCheckData() {
    $('#dlg3').dialog({
        title: "差异数据",
        buttons: [{
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg3').dialog('close');
            }
        }
        ]
    }).dialog('open');
    queryData();
}

// 获取要查询的数据库字段
function queryData() {
    var arr = $('#dg').datagrid('getSelections');
    if (null == arr || arr.length != 1) {
        $.messager.alert('系统提示', "请选择一行数据！", 'warning');
        return;
    }
    var array = [];
    var columns = [];
    $.ajax({
            type: "post",
            url: regression + "/usecase/getColumns",
            dataType: "json",
            //async: false,
            data: {
                id: arr[0].id,
                fsetcode: arr[0].fsetcode,
                fywdate: arr[0].fywdate,
                ftype: arr[0].ftype
            },
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                $.each(data.data, function (index2, item2) {
                    array.push({field: '', title: '', width: ''});
                });
                columns.push(array);
                var i = 0;
                $.each(data.data, function (index2, item2) {
                    columns[0][i]['field'] = index2.toLocaleLowerCase();
                    columns[0][i]['title'] = index2;
                    columns[0][i]['width'] = "150";
                    i++;
                });
                getDatagrid(columns);
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

//数据列表
function getDatagrid(columns) {
    var arr = $('#dg').datagrid('getSelections');
    $('#dgdate').datagrid({
        loadMsg: '数据加载中，请稍后...',
        queryParams: {
            id: arr[0].id,
            fsetcode: arr[0].fsetcode,
            fywdate: arr[0].fywdate,
            ftype: arr[0].ftype
        },
        url: regression + '/usecase/queryData',
        pagination: true,
        singleSelect: false,//如果为true，则只允许选择一行。
        title: "数据列表",
        pageSize: pageSize,
        pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        columns: columns,
        loadFilter: function (data) {
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        }
    }).datagrid("columnMoving");
}
